// import java.util.Comparator;

#include "SQLExprComparor.h"

SQLExprComparor_ptr SQLExprComparor::instance = SQLExprComparor_ptr(new SQLExprComparor());

// @Override
int SQLExprComparor::compare(SQLExpr_ptr a, SQLExpr_ptr b)
{
  return compareTo(a, b);
}

int SQLExprComparor::compareTo(SQLExpr_ptr a, SQLExpr_ptr b)
{
  if (a == nullptr && b == nullptr)
  {
    return 0;
  }

  if (a == nullptr)
  {
    return -1;
  }

  if (b == nullptr)
  {
    return 1;
  }

  if (a->getClass() == b->getClass())
  {
    // return (a)->compareTo(b);
    return 0;
  }

  // return a.getClass().getName().compareTo(b.getClass().getName());
  return 0;
}
